# -*- coding: utf-8 -*-
"""
超市销售数据分析
实验19 分析促销对商品销售的影响
@author: tange
"""

import pandas as pd

import matplotlib.pyplot as plt

import numpy as np

data = pd.read_csv(r'C:\大数据分析综合实训-附件.csv', encoding='gbk')

# 数据预处理
task19_data = data[["是否促销", "大类名称", "中类名称", "商品类型", "销售金额"]]

# 任务1 各类型促销商品的销量统计
task19_data[task19_data["是否促销"] == "是"].商品类型.value_counts().plot(kind="barh", figsize=(22, 10), title="各类型促销商品的销量", fontsize=20)
plt.show()

# 任务2 各大类促销商品的销量统计
task19_data[task19_data["是否促销"] == "是"].大类名称.value_counts().plot(kind="bar",  figsize=(22, 10), title="各大类促销商品的销量", fontsize=20)
plt.show()

# 任务3 休闲类促销商品中不同类别的销量统计
fig, ax = plt.subplots()
ax.set_title("休闲类促销商品中不同类别的销量")

# 休闲类商品中不同类别的名称
type_list = list(task19_data[task19_data["是否促销"] == "是"][task19_data['大类名称'] == '休闲'].中类名称.unique())

# tpye_list = ['饼干','巧克力','炒货','蜜饯','糕点','即食熟制品','口香糖','膨化点心','果冻','进口食品','糖果','无糖食品']

y_pos = np.arange(len(type_list))

# 休闲类商品中不同类别的销售总金额
type_sum_list = []

for type in type_list:
    sum = task19_data[task19_data["是否促销"] == "是"][task19_data['大类名称']== '休闲'][task19_data['中类名称'] == type].销售金额.sum()
    type_sum_list.append(sum)

ax.barh(y_pos, type_sum_list, align='center')

ax.invert_yaxis()
ax.set_yticks(y_pos)
ax.set_yticklabels(type_list, fontsize=13)

ax.set_xlabel('销量(元)')
